// pages/profile/index.ts
Page({
  /**
   * 页面的初始数据
   */
  data: {
    userInfo: {},
  },
  // 获取用户微信头像
  getUserNickName(ev) {
    this.updateNickName(ev.detail.value)
  },
  // 更新用户信息
  async updateNickName(nickName) {
    await wx.http.put('/userInfo', { nickName })
    this.setData({ 'userInfo.nickName': nickName })
    this.getUserInfo()
  },
  // 获取用户头像
  getUserAvatar(ev) {
    this.updateUserAvatar(ev.detail.avatarUrl)
  },
  // 上传头像
  updateUserAvatar(avatar) {
    // 上传头像
    wx.uploadFile({
      url: wx.http.baseURL + '/upload',
      filePath: avatar,
      name: 'file', //二进制
      header: {
        Authorization: getApp().token,
      },
      formData: {
        type: 'avatar',
      },
      success: (res) => {
        // 转换为JSON数据
        const data = JSON.parse(res.data)
        // 检测接口调用结果
        if (data.code !== 10000) return wx.utils.toast('更新头像失败!')
        // 保存并预览图片地址
        this.setData({ 'userInfo.avatar': data.data.url })
      },
    })
    this.getUserInfo()
  },
  // 获取用户信息
  async getUserInfo() {
    // 请求数据接口
    const { code, data: userInfo } = await wx.http.get('/userInfo')
    // 校验数据是否合法
    if (code !== 10000) return wx.utils.toast('数据加载失败, 请稍后重试!')
    // 设置数据，更新渲染
    this.setData({ userInfo })
    // 用户信息多个页面使用--存储到本地
    wx.setStorageSync('userInfo', userInfo)
  },
  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad() {
    // 请求用户信息
    this.getUserInfo()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {},
})
